iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 21
0
自我挑戰組

機器學習入門系列 第 21

ML_Day21(PCA降維)

  • 分享至 

  • xImage
  •  

介紹
降維顧名思義為把高維度降到低維度,也可以把它想成是壓縮數據。降維是機器學習中的一個重要課題,有時候數據太大會造成運算時間過久,佔用內存,所以把數據做降維後有助於我們儲存及分析。那目前最常用的方法就是PCA(principle components analysis)
https://ithelp.ithome.com.tw/upload/images/20191003/201161572ojMgj8tG1.png

降維的平面
PCA的基本假設是將高維度的資料投影到較低維度的平面(如果原始資料是2D,降維之後會在一條直線上,以下都會以2D平面做介紹)

如下圖所示,假設我們有一組資料,我們希望找到一個向量可以投影(紅色的線),這條線的選擇依據就是原始資料投影至新的線的距離,又稱為投影誤差(projection error)。
https://ithelp.ithome.com.tw/upload/images/20191003/201161577dZsUTG4nC.png

以下這張圖我分別用2D及3D來做解釋,以左邊的圖來說,要從二維降到一維,也就是找到一條直線能夠最小化projection error;以右邊的圖來說,要從三維降到二維,也就是找到一個直平面能夠最小化projection error。

https://ithelp.ithome.com.tw/upload/images/20191003/20116157N8UhWdB9Ya.png

PCA不等於linear regression
從下面這張圖,你看得出來哪一個是PCA哪一個是linear regression嗎?仔細一看兩個其實是有差異的。左邊是linear regression,我們要找一條線能夠fit所有資料,也就是最小化每個資料與直線平方誤差,就是圖中藍色的線;左邊是PCA,我們要找的是一條投影的向量,讓所有資料的投影誤差最小。而兩者最大的差異在於linear regression要透過input x來預測y,但是PCA料中每一筆資料根本就沒有所需要被預測的y。
https://ithelp.ithome.com.tw/upload/images/20191003/20116157KcpqIzuwHL.png

PCA步驟
吳恩達機器學習沒有特別講到找轉換後向量的數學推倒,所以這邊稍微整理一下PCA的整個概念,簡單來說PCA著重在高維度的資料,最大化變異數並投影至較低維度的平面。這個轉換後的平面是由正交軸(互相垂直)所組成,也就是說在正交的情況下最大化變異數。

假設今天將資料從n維降到k維,必須先計算covariance matrix(共變異數矩陣或 協方差矩陣,這裡有更詳細介紹協方差矩陣 https://kknews.cc/zh-tw/code/rbrbrko.html)。在了解 covariance matrix 之前,我們先了解 單變量的投影後的變異數的計算方式:

PCA假設資料 μ等於0(每個變數的平均數是0),這樣可以方便之後做簡化且對投影至新的平面軸的方向不影響,可以看成平移至0的地方。

https://ithelp.ithome.com.tw/upload/images/20191003/20116157i97F64WSzo.png

通常情況屬於多變量,所以會寫成矩陣的方式:

https://ithelp.ithome.com.tw/upload/images/20191003/20116157Gt5L7ld3tL.png

C就是covariance matrix:

https://ithelp.ithome.com.tw/upload/images/20191003/201161578TPGhEW2yY.png

所以PCA 就是讓投影向量讓投影後的資料變異量最大,從covariance matrix得到的特徵向量就是變異數最大的方向,就是新的軸(更詳細的數學推導可以參考 機器/統計學習:主成分分析(Principal Component Analysis, PCA))

https://ithelp.ithome.com.tw/upload/images/20191003/20116157M7c6a7JvnP.png

  1. 對數據做標準化,使數據在相同區間較好比較
  2. 建立covariance matrix
  3. 分解covariance matrix為特徵向量及特徵值
  4. 選擇值最大的k個特徵值對應的特徵向量
  5. 利用k特徵向量建立投影矩陣

上一篇
ML_Day20(KNN與K-Means差異)
下一篇
ML_Day22(XGBoost)
系列文
機器學習入門28
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言